using System;
using System.Collections.Generic;

namespace B.S.NewMedical.Api.Read.DTOS
{
    /// <summary>
    /// 问诊单信息反填DTO
    /// </summary>
    public class ConsultationFormDto
    {
        /// <summary>
        /// 挂号记录ID
        /// </summary>
        public int RegisterId { get; set; }

        /// <summary>
        /// 患者基本信息
        /// </summary>
        public PatientInfoDto PatientInfo { get; set; }

        /// <summary>
        /// 医生信息
        /// </summary>
        public DoctorInfoDto DoctorInfo { get; set; }

        /// <summary>
        /// 科室信息
        /// </summary>
        public DepartmentInfoDto DepartmentInfo { get; set; }

        /// <summary>
        /// 挂号信息
        /// </summary>
        public RegisterInfoDto RegisterInfo { get; set; }

        /// <summary>
        /// 历史问诊记录
        /// </summary>
        public List<ConsultationHistoryDto> ConsultationHistory { get; set; }

        /// <summary>
        /// 过敏史信息
        /// </summary>
        public List<string> Allergies { get; set; }

        /// <summary>
        /// 既往病史
        /// </summary>
        public List<string> MedicalHistory { get; set; }

        /// <summary>
        /// 家族病史
        /// </summary>
        public List<string> FamilyHistory { get; set; }

        /// <summary>
        /// 用药史
        /// </summary>
        public List<string> MedicationHistory { get; set; }

        /// <summary>
        /// 生活习惯
        /// </summary>
        public LifestyleInfoDto Lifestyle { get; set; }

        /// <summary>
        /// 体格检查模板
        /// </summary>
        public PhysicalExamTemplateDto PhysicalExamTemplate { get; set; }

        /// <summary>
        /// 常见症状模板
        /// </summary>
        public List<string> CommonSymptoms { get; set; }

        /// <summary>
        /// 诊断模板
        /// </summary>
        public List<string> DiagnosisTemplates { get; set; }

        /// <summary>
        /// 治疗方案模板
        /// </summary>
        public List<string> TreatmentTemplates { get; set; }
    }

    /// <summary>
    /// 患者信息DTO
    /// </summary>
    public class PatientInfoDto
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Gender { get; set; }
        public int Age { get; set; }
        public DateTime BirthDate { get; set; }
        public string IdCard { get; set; }
        public string Phone { get; set; }
        public string Address { get; set; }
        public string EmergencyContact { get; set; }
        public string EmergencyPhone { get; set; }
        public string BloodType { get; set; }
        public decimal Height { get; set; }
        public decimal Weight { get; set; }
        public string MaritalStatus { get; set; }
        public string Occupation { get; set; }
    }

    /// <summary>
    /// 医生信息DTO
    /// </summary>
    public class DoctorInfoDto
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Specialty { get; set; }
        public string Introduction { get; set; }
        public string Avatar { get; set; }
    }

    /// <summary>
    /// 科室信息DTO
    /// </summary>
    public class DepartmentInfoDto
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public string Location { get; set; }
        public string ContactPhone { get; set; }
    }

    /// <summary>
    /// 挂号信息DTO
    /// </summary>
    public class RegisterInfoDto
    {
        public int Id { get; set; }
        public string OrderId { get; set; }
        public string Type { get; set; }
        public decimal Fee { get; set; }
        public string Status { get; set; }
        public DateTime VisitDate { get; set; }
        public DateTime AppointmentTime { get; set; }
        public string WaitTime { get; set; }
        public string Remark { get; set; }
        public int SlotNumber { get; set; }
    }

    /// <summary>
    /// 历史问诊记录DTO
    /// </summary>
    public class ConsultationHistoryDto
    {
        public int Id { get; set; }
        public DateTime ConsultationDate { get; set; }
        public string DoctorName { get; set; }
        public string DepartmentName { get; set; }
        public string ChiefComplaint { get; set; }
        public string Diagnosis { get; set; }
        public string Treatment { get; set; }
        public string Prescription { get; set; }
        public string Notes { get; set; }
    }

    /// <summary>
    /// 生活习惯信息DTO
    /// </summary>
    public class LifestyleInfoDto
    {
        public string Smoking { get; set; }
        public string Drinking { get; set; }
        public string Exercise { get; set; }
        public string Diet { get; set; }
        public string Sleep { get; set; }
        public string WorkEnvironment { get; set; }
    }

    /// <summary>
    /// 体格检查模板DTO
    /// </summary>
    public class PhysicalExamTemplateDto
    {
        public VitalSignsDto VitalSigns { get; set; }
        public List<string> GeneralAppearance { get; set; }
        public List<string> Cardiovascular { get; set; }
        public List<string> Respiratory { get; set; }
        public List<string> Abdomen { get; set; }
        public List<string> Neurological { get; set; }
        public List<string> Skin { get; set; }
        public List<string> Extremities { get; set; }
    }

    /// <summary>
    /// 生命体征DTO
    /// </summary>
    public class VitalSignsDto
    {
        public decimal Temperature { get; set; }
        public int Pulse { get; set; }
        public int BloodPressureSystolic { get; set; }
        public int BloodPressureDiastolic { get; set; }
        public int RespiratoryRate { get; set; }
        public decimal OxygenSaturation { get; set; }
    }
} 